library(tidyverse)
library(tidyquant) # Used for FANG dataset
library(timetk)

Plotting Single Time Series

taylor_30_min
#> # A tibble: 4,032 x 2
#>    date                value
#>    <dttm>              <dbl>
#>  1 2000-06-05 00:00:00 22262
#>  2 2000-06-05 00:30:00 21756
#>  3 2000-06-05 01:00:00 22247
#>  4 2000-06-05 01:30:00 22759
#>  5 2000-06-05 02:00:00 22549
#>  6 2000-06-05 02:30:00 22313
#>  7 2000-06-05 03:00:00 22128
#>  8 2000-06-05 03:30:00 21860
#>  9 2000-06-05 04:00:00 21751
#> 10 2000-06-05 04:30:00 21336
#> # … with 4,022 more rows
taylor_30_min %>% plot_time_series(date, value, .plotly_slider = TRUE)

Plotting Groups

m4_daily %>% group_by(id)
#> # A tibble: 9,743 x 3
#> # Groups:   id [4]
#>    id    date       value
#>    <fct> <date>     <dbl>
#>  1 D10   2014-07-03 2076.
#>  2 D10   2014-07-04 2073.
#>  3 D10   2014-07-05 2049.
#>  4 D10   2014-07-06 2049.
#>  5 D10   2014-07-07 2006.
#>  6 D10   2014-07-08 2018.
#>  7 D10   2014-07-09 2019.
#>  8 D10   2014-07-10 2007.
#>  9 D10   2014-07-11 2010 
#> 10 D10   2014-07-12 2002.
#> # … with 9,733 more rows
m4_daily %>%
  group_by(id) %>%
  plot_time_series(date, value,
                   .facet_ncol = 2, .facet_scales = "free")

Adjusting the Smoother

m4_daily %>%
  group_by(id) %>%
  plot_time_series(date, value,
                   .facet_ncol = 2, .facet_scales = "free",
                   .smooth_period = "2 years", .smooth_message = TRUE)
#> trend = 337 days
#> trend = 730 days
#> trend = 338 days
#> trend = 730 days

Visualizing Transformations & Sub-Groups

m4_hourly %>% group_by(id)
#> # A tibble: 3,060 x 3
#> # Groups:   id [4]
#>    id    date                value
#>    <fct> <dttm>              <dbl>
#>  1 H10   2015-07-01 12:00:00   513
#>  2 H10   2015-07-01 13:00:00   512
#>  3 H10   2015-07-01 14:00:00   506
#>  4 H10   2015-07-01 15:00:00   500
#>  5 H10   2015-07-01 16:00:00   490
#>  6 H10   2015-07-01 17:00:00   484
#>  7 H10   2015-07-01 18:00:00   467
#>  8 H10   2015-07-01 19:00:00   446
#>  9 H10   2015-07-01 20:00:00   434
#> 10 H10   2015-07-01 21:00:00   422
#> # … with 3,050 more rows
m4_hourly %>%
  plot_time_series(date, log(value),             # Apply a Log Transformation
                   id,                           # Faceting (Grouping) applied internally via ...
                   .color_var = week(date),      # Week transformation applied to color
                   # Facet formatting
                   .facet_ncol = 2,
                   .facet_scales = "free")